package com.navi.loaddata.core.mesEntity;

import javax.persistence.*;
import java.util.Date;

/**
 * Created by Jay on 2018/3/8.
 */
@Entity
@Table(name = "MES_PRODUCTSPEC", schema = "P1RPTADM", catalog = "")
@IdClass(MesProductspecPK.class)
public class MesProductspec {
    private String factoryname;
    private String productspecname;
    private String productspecversion;
    private String description;
    private String checkstate;
    private String activestate;
    private Date createtime;
    private String createuser;
    private Date checkouttime;
    private String checkoutuser;
    private String productiontype;
    private String producttype;
    private Long productquantity;
    private String subproducttype;
    private Long subproductunitquantity1;
    private Long subproductunitquantity2;
    private String processflowname;
    private String processflowversion;
    private Double estimatedcycletime;
    private String multiproductspectype;
    private String productspec2Name;
    private String productspec2Version;
    private String productsize;
    private Double productthickness;
    private Long productcountonxaxis;
    private Long productcountonyaxis;
    private Long productsizexaxis;
    private Long productsizeyaxis;
    private Long maxusedcount;
    private String productruntype;
    private String carriersetcode;
    private String boxsetcode;
    private String mqctype;
    private String productspecgroup;
    private String lastupdateuser;
    private Date lastupdatetime;
    private String productsizetype;
    private String subfactoryname;
    private String detaildummytype;
    private String modeltype;
    private String productspectype;
    private Date updatetime;
    private String erpproductspecname;
    private String assemblenocheckflag;
    private String erpshopname;

    @Id
    @Column(name = "FACTORYNAME")
    public String getFactoryname() {
        return factoryname;
    }

    public void setFactoryname(String factoryname) {
        this.factoryname = factoryname;
    }

    @Id
    @Column(name = "PRODUCTSPECNAME")
    public String getProductspecname() {
        return productspecname;
    }

    public void setProductspecname(String productspecname) {
        this.productspecname = productspecname;
    }

    @Id
    @Column(name = "PRODUCTSPECVERSION")
    public String getProductspecversion() {
        return productspecversion;
    }

    public void setProductspecversion(String productspecversion) {
        this.productspecversion = productspecversion;
    }

    @Basic
    @Column(name = "DESCRIPTION")
    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    @Basic
    @Column(name = "CHECKSTATE")
    public String getCheckstate() {
        return checkstate;
    }

    public void setCheckstate(String checkstate) {
        this.checkstate = checkstate;
    }

    @Basic
    @Column(name = "ACTIVESTATE")
    public String getActivestate() {
        return activestate;
    }

    public void setActivestate(String activestate) {
        this.activestate = activestate;
    }

    @Basic
    @Column(name = "CREATETIME")
    @Temporal(TemporalType.TIMESTAMP)
    public Date getCreatetime() {
        return createtime;
    }

    public void setCreatetime(Date createtime) {
        this.createtime = createtime;
    }

    @Basic
    @Column(name = "CREATEUSER")
    public String getCreateuser() {
        return createuser;
    }

    public void setCreateuser(String createuser) {
        this.createuser = createuser;
    }

    @Basic
    @Column(name = "CHECKOUTTIME")
    @Temporal(TemporalType.TIMESTAMP)
    public Date getCheckouttime() {
        return checkouttime;
    }

    public void setCheckouttime(Date checkouttime) {
        this.checkouttime = checkouttime;
    }

    @Basic
    @Column(name = "CHECKOUTUSER")
    public String getCheckoutuser() {
        return checkoutuser;
    }

    public void setCheckoutuser(String checkoutuser) {
        this.checkoutuser = checkoutuser;
    }

    @Basic
    @Column(name = "PRODUCTIONTYPE")
    public String getProductiontype() {
        return productiontype;
    }

    public void setProductiontype(String productiontype) {
        this.productiontype = productiontype;
    }

    @Basic
    @Column(name = "PRODUCTTYPE")
    public String getProducttype() {
        return producttype;
    }

    public void setProducttype(String producttype) {
        this.producttype = producttype;
    }

    @Basic
    @Column(name = "PRODUCTQUANTITY")
    public Long getProductquantity() {
        return productquantity;
    }

    public void setProductquantity(Long productquantity) {
        this.productquantity = productquantity;
    }

    @Basic
    @Column(name = "SUBPRODUCTTYPE")
    public String getSubproducttype() {
        return subproducttype;
    }

    public void setSubproducttype(String subproducttype) {
        this.subproducttype = subproducttype;
    }

    @Basic
    @Column(name = "SUBPRODUCTUNITQUANTITY1")
    public Long getSubproductunitquantity1() {
        return subproductunitquantity1;
    }

    public void setSubproductunitquantity1(Long subproductunitquantity1) {
        this.subproductunitquantity1 = subproductunitquantity1;
    }

    @Basic
    @Column(name = "SUBPRODUCTUNITQUANTITY2")
    public Long getSubproductunitquantity2() {
        return subproductunitquantity2;
    }

    public void setSubproductunitquantity2(Long subproductunitquantity2) {
        this.subproductunitquantity2 = subproductunitquantity2;
    }

    @Basic
    @Column(name = "PROCESSFLOWNAME")
    public String getProcessflowname() {
        return processflowname;
    }

    public void setProcessflowname(String processflowname) {
        this.processflowname = processflowname;
    }

    @Basic
    @Column(name = "PROCESSFLOWVERSION")
    public String getProcessflowversion() {
        return processflowversion;
    }

    public void setProcessflowversion(String processflowversion) {
        this.processflowversion = processflowversion;
    }

    @Basic
    @Column(name = "ESTIMATEDCYCLETIME")
    public Double getEstimatedcycletime() {
        return estimatedcycletime;
    }

    public void setEstimatedcycletime(Double estimatedcycletime) {
        this.estimatedcycletime = estimatedcycletime;
    }

    @Basic
    @Column(name = "MULTIPRODUCTSPECTYPE")
    public String getMultiproductspectype() {
        return multiproductspectype;
    }

    public void setMultiproductspectype(String multiproductspectype) {
        this.multiproductspectype = multiproductspectype;
    }

    @Basic
    @Column(name = "PRODUCTSPEC2NAME")
    public String getProductspec2Name() {
        return productspec2Name;
    }

    public void setProductspec2Name(String productspec2Name) {
        this.productspec2Name = productspec2Name;
    }

    @Basic
    @Column(name = "PRODUCTSPEC2VERSION")
    public String getProductspec2Version() {
        return productspec2Version;
    }

    public void setProductspec2Version(String productspec2Version) {
        this.productspec2Version = productspec2Version;
    }

    @Basic
    @Column(name = "PRODUCTSIZE")
    public String getProductsize() {
        return productsize;
    }

    public void setProductsize(String productsize) {
        this.productsize = productsize;
    }

    @Basic
    @Column(name = "PRODUCTTHICKNESS")
    public Double getProductthickness() {
        return productthickness;
    }

    public void setProductthickness(Double productthickness) {
        this.productthickness = productthickness;
    }

    @Basic
    @Column(name = "PRODUCTCOUNTONXAXIS")
    public Long getProductcountonxaxis() {
        return productcountonxaxis;
    }

    public void setProductcountonxaxis(Long productcountonxaxis) {
        this.productcountonxaxis = productcountonxaxis;
    }

    @Basic
    @Column(name = "PRODUCTCOUNTONYAXIS")
    public Long getProductcountonyaxis() {
        return productcountonyaxis;
    }

    public void setProductcountonyaxis(Long productcountonyaxis) {
        this.productcountonyaxis = productcountonyaxis;
    }

    @Basic
    @Column(name = "PRODUCTSIZEXAXIS")
    public Long getProductsizexaxis() {
        return productsizexaxis;
    }

    public void setProductsizexaxis(Long productsizexaxis) {
        this.productsizexaxis = productsizexaxis;
    }

    @Basic
    @Column(name = "PRODUCTSIZEYAXIS")
    public Long getProductsizeyaxis() {
        return productsizeyaxis;
    }

    public void setProductsizeyaxis(Long productsizeyaxis) {
        this.productsizeyaxis = productsizeyaxis;
    }

    @Basic
    @Column(name = "MAXUSEDCOUNT")
    public Long getMaxusedcount() {
        return maxusedcount;
    }

    public void setMaxusedcount(Long maxusedcount) {
        this.maxusedcount = maxusedcount;
    }

    @Basic
    @Column(name = "PRODUCTRUNTYPE")
    public String getProductruntype() {
        return productruntype;
    }

    public void setProductruntype(String productruntype) {
        this.productruntype = productruntype;
    }

    @Basic
    @Column(name = "CARRIERSETCODE")
    public String getCarriersetcode() {
        return carriersetcode;
    }

    public void setCarriersetcode(String carriersetcode) {
        this.carriersetcode = carriersetcode;
    }

    @Basic
    @Column(name = "BOXSETCODE")
    public String getBoxsetcode() {
        return boxsetcode;
    }

    public void setBoxsetcode(String boxsetcode) {
        this.boxsetcode = boxsetcode;
    }

    @Basic
    @Column(name = "MQCTYPE")
    public String getMqctype() {
        return mqctype;
    }

    public void setMqctype(String mqctype) {
        this.mqctype = mqctype;
    }

    @Basic
    @Column(name = "PRODUCTSPECGROUP")
    public String getProductspecgroup() {
        return productspecgroup;
    }

    public void setProductspecgroup(String productspecgroup) {
        this.productspecgroup = productspecgroup;
    }

    @Basic
    @Column(name = "LASTUPDATEUSER")
    public String getLastupdateuser() {
        return lastupdateuser;
    }

    public void setLastupdateuser(String lastupdateuser) {
        this.lastupdateuser = lastupdateuser;
    }

    @Basic
    @Column(name = "LASTUPDATETIME")
    @Temporal(TemporalType.TIMESTAMP)
    public Date getLastupdatetime() {
        return lastupdatetime;
    }

    public void setLastupdatetime(Date lastupdatetime) {
        this.lastupdatetime = lastupdatetime;
    }

    @Basic
    @Column(name = "PRODUCTSIZETYPE")
    public String getProductsizetype() {
        return productsizetype;
    }

    public void setProductsizetype(String productsizetype) {
        this.productsizetype = productsizetype;
    }

    @Basic
    @Column(name = "SUBFACTORYNAME")
    public String getSubfactoryname() {
        return subfactoryname;
    }

    public void setSubfactoryname(String subfactoryname) {
        this.subfactoryname = subfactoryname;
    }

    @Basic
    @Column(name = "DETAILDUMMYTYPE")
    public String getDetaildummytype() {
        return detaildummytype;
    }

    public void setDetaildummytype(String detaildummytype) {
        this.detaildummytype = detaildummytype;
    }

    @Basic
    @Column(name = "MODELTYPE")
    public String getModeltype() {
        return modeltype;
    }

    public void setModeltype(String modeltype) {
        this.modeltype = modeltype;
    }

    @Basic
    @Column(name = "PRODUCTSPECTYPE")
    public String getProductspectype() {
        return productspectype;
    }

    public void setProductspectype(String productspectype) {
        this.productspectype = productspectype;
    }

    @Basic
    @Column(name = "UPDATETIME")
    @Temporal(TemporalType.TIMESTAMP)
    public Date getUpdatetime() {
        return updatetime;
    }

    public void setUpdatetime(Date updatetime) {
        this.updatetime = updatetime;
    }

    @Basic
    @Column(name = "ERPPRODUCTSPECNAME")
    public String getErpproductspecname() {
        return erpproductspecname;
    }

    public void setErpproductspecname(String erpproductspecname) {
        this.erpproductspecname = erpproductspecname;
    }

    @Basic
    @Column(name = "ASSEMBLENOCHECKFLAG")
    public String getAssemblenocheckflag() {
        return assemblenocheckflag;
    }

    public void setAssemblenocheckflag(String assemblenocheckflag) {
        this.assemblenocheckflag = assemblenocheckflag;
    }

    @Basic
    @Column(name = "ERPSHOPNAME")
    public String getErpshopname() {
        return erpshopname;
    }

    public void setErpshopname(String erpshopname) {
        this.erpshopname = erpshopname;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        MesProductspec that = (MesProductspec) o;

        if (factoryname != null ? !factoryname.equals(that.factoryname) : that.factoryname != null) return false;
        if (productspecname != null ? !productspecname.equals(that.productspecname) : that.productspecname != null)
            return false;
        if (productspecversion != null ? !productspecversion.equals(that.productspecversion) : that.productspecversion != null)
            return false;
        if (description != null ? !description.equals(that.description) : that.description != null) return false;
        if (checkstate != null ? !checkstate.equals(that.checkstate) : that.checkstate != null) return false;
        if (activestate != null ? !activestate.equals(that.activestate) : that.activestate != null) return false;
        if (createtime != null ? !createtime.equals(that.createtime) : that.createtime != null) return false;
        if (createuser != null ? !createuser.equals(that.createuser) : that.createuser != null) return false;
        if (checkouttime != null ? !checkouttime.equals(that.checkouttime) : that.checkouttime != null) return false;
        if (checkoutuser != null ? !checkoutuser.equals(that.checkoutuser) : that.checkoutuser != null) return false;
        if (productiontype != null ? !productiontype.equals(that.productiontype) : that.productiontype != null)
            return false;
        if (producttype != null ? !producttype.equals(that.producttype) : that.producttype != null) return false;
        if (productquantity != null ? !productquantity.equals(that.productquantity) : that.productquantity != null)
            return false;
        if (subproducttype != null ? !subproducttype.equals(that.subproducttype) : that.subproducttype != null)
            return false;
        if (subproductunitquantity1 != null ? !subproductunitquantity1.equals(that.subproductunitquantity1) : that.subproductunitquantity1 != null)
            return false;
        if (subproductunitquantity2 != null ? !subproductunitquantity2.equals(that.subproductunitquantity2) : that.subproductunitquantity2 != null)
            return false;
        if (processflowname != null ? !processflowname.equals(that.processflowname) : that.processflowname != null)
            return false;
        if (processflowversion != null ? !processflowversion.equals(that.processflowversion) : that.processflowversion != null)
            return false;
        if (estimatedcycletime != null ? !estimatedcycletime.equals(that.estimatedcycletime) : that.estimatedcycletime != null)
            return false;
        if (multiproductspectype != null ? !multiproductspectype.equals(that.multiproductspectype) : that.multiproductspectype != null)
            return false;
        if (productspec2Name != null ? !productspec2Name.equals(that.productspec2Name) : that.productspec2Name != null)
            return false;
        if (productspec2Version != null ? !productspec2Version.equals(that.productspec2Version) : that.productspec2Version != null)
            return false;
        if (productsize != null ? !productsize.equals(that.productsize) : that.productsize != null) return false;
        if (productthickness != null ? !productthickness.equals(that.productthickness) : that.productthickness != null)
            return false;
        if (productcountonxaxis != null ? !productcountonxaxis.equals(that.productcountonxaxis) : that.productcountonxaxis != null)
            return false;
        if (productcountonyaxis != null ? !productcountonyaxis.equals(that.productcountonyaxis) : that.productcountonyaxis != null)
            return false;
        if (productsizexaxis != null ? !productsizexaxis.equals(that.productsizexaxis) : that.productsizexaxis != null)
            return false;
        if (productsizeyaxis != null ? !productsizeyaxis.equals(that.productsizeyaxis) : that.productsizeyaxis != null)
            return false;
        if (maxusedcount != null ? !maxusedcount.equals(that.maxusedcount) : that.maxusedcount != null) return false;
        if (productruntype != null ? !productruntype.equals(that.productruntype) : that.productruntype != null)
            return false;
        if (carriersetcode != null ? !carriersetcode.equals(that.carriersetcode) : that.carriersetcode != null)
            return false;
        if (boxsetcode != null ? !boxsetcode.equals(that.boxsetcode) : that.boxsetcode != null) return false;
        if (mqctype != null ? !mqctype.equals(that.mqctype) : that.mqctype != null) return false;
        if (productspecgroup != null ? !productspecgroup.equals(that.productspecgroup) : that.productspecgroup != null)
            return false;
        if (lastupdateuser != null ? !lastupdateuser.equals(that.lastupdateuser) : that.lastupdateuser != null)
            return false;
        if (lastupdatetime != null ? !lastupdatetime.equals(that.lastupdatetime) : that.lastupdatetime != null)
            return false;
        if (productsizetype != null ? !productsizetype.equals(that.productsizetype) : that.productsizetype != null)
            return false;
        if (subfactoryname != null ? !subfactoryname.equals(that.subfactoryname) : that.subfactoryname != null)
            return false;
        if (detaildummytype != null ? !detaildummytype.equals(that.detaildummytype) : that.detaildummytype != null)
            return false;
        if (modeltype != null ? !modeltype.equals(that.modeltype) : that.modeltype != null) return false;
        if (productspectype != null ? !productspectype.equals(that.productspectype) : that.productspectype != null)
            return false;
        if (updatetime != null ? !updatetime.equals(that.updatetime) : that.updatetime != null) return false;
        if (erpproductspecname != null ? !erpproductspecname.equals(that.erpproductspecname) : that.erpproductspecname != null)
            return false;
        if (assemblenocheckflag != null ? !assemblenocheckflag.equals(that.assemblenocheckflag) : that.assemblenocheckflag != null)
            return false;
        if (erpshopname != null ? !erpshopname.equals(that.erpshopname) : that.erpshopname != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = factoryname != null ? factoryname.hashCode() : 0;
        result = 31 * result + (productspecname != null ? productspecname.hashCode() : 0);
        result = 31 * result + (productspecversion != null ? productspecversion.hashCode() : 0);
        result = 31 * result + (description != null ? description.hashCode() : 0);
        result = 31 * result + (checkstate != null ? checkstate.hashCode() : 0);
        result = 31 * result + (activestate != null ? activestate.hashCode() : 0);
        result = 31 * result + (createtime != null ? createtime.hashCode() : 0);
        result = 31 * result + (createuser != null ? createuser.hashCode() : 0);
        result = 31 * result + (checkouttime != null ? checkouttime.hashCode() : 0);
        result = 31 * result + (checkoutuser != null ? checkoutuser.hashCode() : 0);
        result = 31 * result + (productiontype != null ? productiontype.hashCode() : 0);
        result = 31 * result + (producttype != null ? producttype.hashCode() : 0);
        result = 31 * result + (productquantity != null ? productquantity.hashCode() : 0);
        result = 31 * result + (subproducttype != null ? subproducttype.hashCode() : 0);
        result = 31 * result + (subproductunitquantity1 != null ? subproductunitquantity1.hashCode() : 0);
        result = 31 * result + (subproductunitquantity2 != null ? subproductunitquantity2.hashCode() : 0);
        result = 31 * result + (processflowname != null ? processflowname.hashCode() : 0);
        result = 31 * result + (processflowversion != null ? processflowversion.hashCode() : 0);
        result = 31 * result + (estimatedcycletime != null ? estimatedcycletime.hashCode() : 0);
        result = 31 * result + (multiproductspectype != null ? multiproductspectype.hashCode() : 0);
        result = 31 * result + (productspec2Name != null ? productspec2Name.hashCode() : 0);
        result = 31 * result + (productspec2Version != null ? productspec2Version.hashCode() : 0);
        result = 31 * result + (productsize != null ? productsize.hashCode() : 0);
        result = 31 * result + (productthickness != null ? productthickness.hashCode() : 0);
        result = 31 * result + (productcountonxaxis != null ? productcountonxaxis.hashCode() : 0);
        result = 31 * result + (productcountonyaxis != null ? productcountonyaxis.hashCode() : 0);
        result = 31 * result + (productsizexaxis != null ? productsizexaxis.hashCode() : 0);
        result = 31 * result + (productsizeyaxis != null ? productsizeyaxis.hashCode() : 0);
        result = 31 * result + (maxusedcount != null ? maxusedcount.hashCode() : 0);
        result = 31 * result + (productruntype != null ? productruntype.hashCode() : 0);
        result = 31 * result + (carriersetcode != null ? carriersetcode.hashCode() : 0);
        result = 31 * result + (boxsetcode != null ? boxsetcode.hashCode() : 0);
        result = 31 * result + (mqctype != null ? mqctype.hashCode() : 0);
        result = 31 * result + (productspecgroup != null ? productspecgroup.hashCode() : 0);
        result = 31 * result + (lastupdateuser != null ? lastupdateuser.hashCode() : 0);
        result = 31 * result + (lastupdatetime != null ? lastupdatetime.hashCode() : 0);
        result = 31 * result + (productsizetype != null ? productsizetype.hashCode() : 0);
        result = 31 * result + (subfactoryname != null ? subfactoryname.hashCode() : 0);
        result = 31 * result + (detaildummytype != null ? detaildummytype.hashCode() : 0);
        result = 31 * result + (modeltype != null ? modeltype.hashCode() : 0);
        result = 31 * result + (productspectype != null ? productspectype.hashCode() : 0);
        result = 31 * result + (updatetime != null ? updatetime.hashCode() : 0);
        result = 31 * result + (erpproductspecname != null ? erpproductspecname.hashCode() : 0);
        result = 31 * result + (assemblenocheckflag != null ? assemblenocheckflag.hashCode() : 0);
        result = 31 * result + (erpshopname != null ? erpshopname.hashCode() : 0);
        return result;
    }
}
